package com.atguigu.gulimall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/*
* 整合mybatisplus
* 1、导入相关依赖
* 2、导入mysql依赖
* 3、配置
*       配置数据源
*           在application.yml中进行相关配置
*       配置mybatisplus
*           使用@MapperScan
*           告诉mybatisplus sql相关的配置文件在哪里
*           配置主键自增
*
*
* 整合SpringCache简化缓存开发
*   1、引入依赖
*   2、写配置
*       1、自动配置了那些东西
*           CacheAutoConfiguration会导入RedisCacheConfiguration
*           自动配置好了缓存管理器 RedisCacheManager
*       2、配置使用redis作为缓存
*       3、测试使用缓存
*           1、开启缓存功能 @EnableCaching
*           2、使用注解完成@Cacheable
*       4、原理
*           CacheAutoConfiguration ->RedisCacheConfiguration->RedisCacheManager(初始化所有的缓存)->
*           如果容器中有redisCacheConfiguration 就用，没用就默认生成一个->
*           如果像自定义缓存默认配置，就自己在容器中放一个redisCacheConfiguration->
*           自己生成的redisCacheConfiguration同时也要获取到自己配置文件中设置的值
*
*
*
* */

@EnableRedisHttpSession
@EnableDiscoveryClient
@MapperScan("com.atguigu.gulimall.product.dao")
@SpringBootApplication
@EnableFeignClients(basePackages = "com.atguigu.gulimall.product.feign")
public class GulimallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }

}
